SSLAM Localization

SSLAM package is an optimization-based multi-sensor (mainly stereo camera) state estimator, which achieves accurate self-localization and map management for autonomous applications.

pic1 pic2

It supports multiple visual-inertial sensor types: stereo cameras, mono camera + IMU, stereo cameras + IMU, stereo cameras + INS.

It contains three modules:

The updated version of SSLAM replaced g2o with Ceres (g2o gives occasional crashes) and added optical flow as front end for better tracking, which can be accelerated by GPU. We also added IMU and GPS support as potential sensor fusion.

Features

  • Save & Load functions for familiar scenes with higher accuracy need GPS initial reference).

  • Multiple sensors support (stereo cameras / mono camera + IMU / stereo cameras + IMU / stereo cameras + INS).

  • Visual loop closure and map merging.

  • Options to fuse with GPS and INS data.

  • Able to handle heavy dynamic issue with the assist of cubicle detect repository.

_images/trad.gif

SLAM Performance without dynamic ability.

_images/dyna.gif

SLAM Performance with dynamic ability.

SSLAM Contents

Source Code Structure

sslam/
        ├── README.md
        ├── package.xml
        ├── CMakeLists.txt
        ├── cmake
        │   ├── FindEigen.cmake
        │   └── FindSphinx.cmake
        ├── Config                  # (1) Configuration files including parameter set
        │   ├── bus                       and calibration.
        │   ├── bus2
        │   ├── euroc
        │   ├── honda
        │   ├── kitti_odom
        │   ├── kitti_raw
        │   └── zed
        ├── launch                  # (2) ROS launch file, the entry point of the code.
        │   ├── bus_core.launch
        │   ├── bus_global_core.launch
        │   ├── bus_global.launch
        │   └── bus.launch
        ├── docs
        │   ├── html
        │   ├── latex
        │   └── xml
        ├── camera_models           # (3) Camera model module, with pinhole and
        │   ├── include                   other camera definition and modeling.
        │   ├── readme.md
        │   └── src
        ├── slam_estimator          # (4) SLAM estimator module, the core library
        │   ├── cmake-build-debug         for real-time visual (inertial) odometry.
        │   ├── CMakeLists.txt
        │   ├── package.xml
        │   └── src
        ├── pose_graph              # (5) Pose graph module, the loop closure and
        │   ├── CMakeLists.txt            map management library.
        │   ├── package.xml
        │   └── src
        ├── global_fusion           # (6) Global fusion module, the library that
        │   ├── CMakeLists.txt            integrates slam_estimator with GPS message.
        │   ├── models
        │   ├── package.xml
        │   ├── src
        │   └── ThirdParty
        └── support_files           # (7) Feature descriptor training files and SSLAM
            ├── brief_k10L6.bin           related documentation module.
            ├── brief_pattern.yml
            ├── doc
            └── image